package queue

type Queue []interface{}

// Push 入队
func (q *Queue) Push(v interface{}) {
	// 入队使用append方法放入队尾
	*q = append(*q, v)
}

// Pop 出队
func (q *Queue) Pop() interface{} {
	// 取数第一个数
	head := (*q)[0]
	// 切片，从第二位开启切，切到最后一位，也就等于把队头给干掉
	*q = (*q)[1:]
	return head
}

func (q *Queue) PopOnlyInt() int {
	// 取数第一个数
	head := (*q)[0]
	// 切片，从第二位开启切，切到最后一位，也就等于把队头给干掉
	*q = (*q)[1:]
	return head.(int)
}

func (q *Queue) IsEmpty() bool {
	// 判断队列的长度
	return len(*q) == 0
}
